package com.xiaoxu.intranetweb.mybatisplusSzappdb.business.weightSheets;

import org.springframework.stereotype.Component;

public class AshGateHandling {
    //      平常干灰使用选装点
    //      遇到加湿灰和石膏还有石粉还有炉渣这种带回装载点的使用实装点
    //      根据品种判断，如果品种带有加湿灰、二级灰字样的将装载点的原灰、细灰、粗灰改成加湿灰和二级灰字样
//    无论什么情况下当实装点为空的时候直接启用选装点
//    ashGateName1选装点名字，ashGateName2实装点名字
//    最后返回确定的装载点名称
    public String ashGateHandling(String pdtName, String ashGateName1, String ashGateName2) {

        // 如果两个装载点都为空，则直接返回空字符串
        if ((ashGateName1 == null || ashGateName1.isEmpty()) && (ashGateName2 == null || ashGateName2.isEmpty())) {
            return "";
        }

        // 判断是否需要使用实装点
        boolean useActualLoadingPoint = pdtName != null && (pdtName.contains("加湿灰") || pdtName.contains("石膏")
                || pdtName.contains("石粉") || pdtName.contains("炉渣"));

        // 根据条件选择正确的装载点，并更新名称
        if (useActualLoadingPoint) {
            // 优先使用实装点，如果实装点为空，则使用选装点
            String loadingPoint = (ashGateName2 != null && !ashGateName2.isEmpty()) ? ashGateName2 : ashGateName1;
            return updateLoadingPointName(loadingPoint, pdtName);
        } else {
            // 如果产品名称不包含特定关键字，直接使用选装点
            if (ashGateName1 == null || ashGateName1.isEmpty()) {
                return "";  // 选装点为空，返回空字符串
            }
            return updateLoadingPointName(ashGateName1, pdtName);
        }
    }

    // 辅助方法：根据产品名称更新装载点名称
    private String updateLoadingPointName(String loadingPoint, String pdtName) {
        if (loadingPoint == null || loadingPoint.isEmpty()) {
            return "";  // 如果装载点名称为空或 null，直接返回空字符串
        }

        if (pdtName != null) {
            if (pdtName.contains("加湿灰")) {
                loadingPoint = loadingPoint.replace("原灰", "加湿灰")
                        .replace("细灰", "加湿灰")
                        .replace("粗灰", "加湿灰");
            }
            else if (pdtName.contains("船运二级灰")) {
                loadingPoint = loadingPoint.replace("原灰", "二级灰")
                        .replace("细灰", "船运二级灰")
                        .replace("粗灰", "船运二级灰");
            }
            else if (pdtName.contains("船运细灰")) {
                loadingPoint = loadingPoint.replace("原灰", "二级灰")
                        .replace("细灰", "船运细灰")
                        .replace("粗灰", "船运细灰");
            }
            else if (pdtName.contains("二级灰")) {
                loadingPoint = loadingPoint.replace("原灰", "二级灰")
                        .replace("细灰", "二级灰")
                        .replace("粗灰", "二级灰");
            }
        }

        return loadingPoint;
    }
}
